//index.js
//获取应用实例
const app = getApp()

// Page({
//   data: {
//     motto: 'Hello World',
//     userInfo: {},
//     hasUserInfo: false,
//     canIUse: wx.canIUse('button.open-type.getUserInfo')
//   },
//   //事件处理函数
//   bindViewTap: function() {
//     wx.navigateTo({
//       url: '../logs/logs'
//     })
//   },
//   onLoad: function () {
//     if (app.globalData.userInfo) {
//       this.setData({
//         userInfo: app.globalData.userInfo,
//         hasUserInfo: true
//       })
//     } else if (this.data.canIUse){
//       // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
//       // 所以此处加入 callback 以防止这种情况
//       app.userInfoReadyCallback = res => {
//         this.setData({
//           userInfo: res.userInfo,
//           hasUserInfo: true
//         })
//       }
//     } else {
//       // 在没有 open-type=getUserInfo 版本的兼容处理
//       wx.getUserInfo({
//         success: res => {
//           app.globalData.userInfo = res.userInfo
//           this.setData({
//             userInfo: res.userInfo,
//             hasUserInfo: true
//           })
//         }
//       })
//     }
//   },
//   getUserInfo: function(e) {
//     console.log(e)
//     app.globalData.userInfo = e.detail.userInfo
//     this.setData({
//       userInfo: e.detail.userInfo,
//       hasUserInfo: true
//     })
//   }
// })


Page({
  data: {
    //判断小程序的API，回调，参数，组件等是否在当前版本可用。
    canIUse: wx.canIUse('button.open-type.getUserInfo')
  },
  onLoad: function() {
    // 查看是否授权
    wx.getSetting({
      success: function(res) {
        if (res.authSetting['scope.userInfo']) {
          //用户已经授权过
          console.log('用户已经授权');
          wx.getUserInfo({
            success: function(res) {
              console.log('设置用户信息全局变量');
              app.globalData.userInfo = res.userInfo
            }
          })
        }
      }
    })
  },
  getUserInfo: function(e) {
    // console.log(e.detail.userInfo)
    if (e.detail.userInfo) {
      //用户按了允许授权按钮
      console.log('用户允许授权');
      console.log('设置用户信息全局变量');
      app.globalData.userInfo = e.detail.userInfo

      //尝试读取本地存储中的openId
      var openId = wx.getStorageSync('openId');
      if (openId) {
        app.globalData.openId = openId;
        console.log('本地存储的openId为:' + openId + '，openId设置全局变量，跳转到首页');
        wx.switchTab({
          url: '/pages/home/home'
        })
      } else {
        //如果本地存储的openId为空,请求后台获取openId
        console.log('本地存储的openId为空,请求后台重新获取openId');
        wx.login({
          success: res => {
            // 发送 res.code 到后台换取 openId, sessionKey, unionId
            var code = res.code;
            console.log('发送 res.code到后台换取openId,sessionKey,unionId.当前请求参数code为:' + code);
            var url = app.globalData.serverAddress + '/api/auth/login?code=' + code + '&_t=' + new Date().getTime();
            //获取用户openid,参数为用户信息
            app.httpPost(url, e.detail.userInfo).then((res) => {
              if (res.data.flag) {
                // console.log(res.data.userInfo);
                openId = res.data.userInfo.openId;
                console.log('后台返回的openId为:' + openId);
                wx.setStorageSync('openId', openId);
                app.globalData.openId = openId;
                console.log('本地存储openId完成，openId设置为全局变量，跳转到主页');
                wx.switchTab({
                  url: '/pages/home/home',
                })
              } else {
                console.log(res.data.msg);
                wx.showModal({
                  title: '提示',
                  content: '网络异常',
                  showCancel: false,
                })
              }
            }).catch((errMsg) => {
              wx.showModal({
                title: '提示',
                content: '网络异常',
                showCancel: false,
              })
            })
          }
        })
      }

    } else {
      //用户按了拒绝按钮
      console.log('用户拒绝授权')
      wx.showModal({　　　　
        title: '提示',
        　　　　content: '拒绝授权您将不能使用任何功能',
        　　　　showCancel: false,
        // 　　　　success: function(res) {　　　　　　
        //   if (res.confirm) {　　　　　　　　
        //     wx.navigateBack({　　　　　　　　　　
        //       delta: 0　　　　　　　　
        //     })　　　　　　
        //   }　　　　
        // }　　
      })
    }
  }
})